.\"
.\" Copyright (C) 1994-2021 Altair Engineering, Inc.
.\" For more information, contact Altair at www.altair.com.
.\"
.\" This file is part of both the OpenPBS software ("OpenPBS")
.\" and the PBS Professional ("PBS Pro") software.
.\"
.\" Open Source License Information:
.\"
.\" OpenPBS is free software. You can redistribute it and/or modify it under
.\" the terms of the GNU Affero General Public License as published by the
.\" Free Software Foundation, either version 3 of the License, or (at your
.\" option) any later version.
.\"
.\" OpenPBS is distributed in the hope that it will be useful, but WITHOUT
.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
.\" FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public
.\" License for more details.
.\"
.\" You should have received a copy of the GNU Affero General Public License
.\" along with this program.  If not, see <http://www.gnu.org/licenses/>.
.\"
.\" Commercial License Information:
.\"
.\" PBS Pro is commercially licensed software that shares a common core with
.\" the OpenPBS software.  For a copy of the commercial license terms and
.\" conditions, go to: (http://www.pbspro.com/agreement.html) or contact the
.\" Altair Legal Department.
.\"
.\" Altair's dual-license business model allows companies, individuals, and
.\" organizations to create proprietary derivative works of OpenPBS and
.\" distribute them - whether embedded or bundled with other software -
.\" under a commercial license agreement.
.\"
.\" Use of Altair's trademarks, including but not limited to "PBS™",
.\" "OpenPBS®", "PBS Professional®", and "PBS Pro™" and Altair's logos is
.\" subject to Altair's trademark licensing policies.
.\"
.TH qsig 1B "6 May 2020" Local "PBS Professional"
.SH NAME
.B qsig 
\- signal a PBS batch job
.SH SYNOPSIS
.B qsig
[-s <signal>] <job ID> [<job ID> ...]
.br
.B qsig
--version

.SH DESCRIPTION
The
.B qsig
command sends a signal to all the processes of the specified jobs.  
The 
.B qsig 
command sends a 
.I Signal Job
batch request to the server which owns the job.

The 
.B qsig
command can be used for jobs, job arrays, subjobs, and ranges of subjobs.
If it is used on a range of subjobs, the running subjobs in the range 
are signaled.

Not all signal names are recognized by 
.B qsig
; if using a signal name does not work, try issuing the signal number instead.

.B Using admin-suspend and admin-resume
.br
If you have a vnode requiring maintenance while remaining powered up,
where you do not want jobs running during the maintenance, you can use
the special signals 
.I admin-suspend 
and 
.I admin-resume 
to suspend and resume the jobs on the vnode.  When you use 
.I admin-suspend 
on a vnode's
job(s), the vnode goes into the 
.I maintenance 
state, and its scheduler does not schedule jobs on it.  You must separately 
.I admin-suspend 
each job on the vnode.  When its last 
.I admin-suspended 
job is admin-resumed, a vnode leaves the 
.I maintenance 
state.  

.B Restrictions
.br
The request to signal a job is rejected if:
.IP -
The user is not authorized to signal the job
.IP -
The job is not in the 
.I running
or 
.I suspended
state
.IP -
The requested signal is not supported by the system upon which the
job is executing
.IP -
The job is in the process of provisioning
.IP -
You attempt to use 
.I admin-resume 
on a job that was 
.I suspended
.IP -
You attempt to use 
.I resume 
on a job that was 
.I admin-suspended
.LP

.B Required Privilege
.br
Manager or Operator privilege is required to use the 
.I admin-suspend, admin-resume, suspend, 
or 
.I resume
signals.  Unprivileged users can use other signals.

.SH OPTIONS
.IP "-s" 8
PBS sends SIGTERM to the job.
.IP "-s <signal>" 8
PBS sends signal
.I signal
to the job.
.IP "--version" 8
The 
.B qsig
command returns its PBS version information and exits.
This option can only be used alone.

.SH SIGNALS
You can send standard signals to a job, or the special signals described below.
The
.I signal
argument can be in any of the following formats:
.RS 4
A signal name, e.g.
.I SIGKILL

The signal name without the 
.I SIG
prefix, e.g. 
.I KILL

An unsigned signal number, e.g.
.I 9
.RE

The signal name
.I SIGNULL
is allowed; in this case the server sends the signal 0 to the job, which 
has no effect.

.B Special Signals
.br
The following special signals are all lower-case, and have no
associated signal number:

.IP "admin-suspend"
Suspends a job and puts its vnodes into the 
.I maintenance 
state.  The job is put into the 
.I S 
state and its processes are suspended.  
When suspended, a job is not executing and is not charged for
walltime.
.br
Syntax:
.I qsig -s admin-suspend <job ID>

.IP "admin-resume"
Resumes a job that was suspended using the 
.I admin-suspend 
signal, without waiting for its scheduler.   Cannot be used on jobs that were suspended with 
.I suspend 
signal. When the last 
.I admin-suspended
job has been 
.I admin_resumed, 
the vnode leaves the maintenance state.
.br
Syntax:
.I qsig -s admin-resume <job ID>

.IP "suspend" 
Suspends specified job(s).  Job goes into 
.I suspended (S)
state.  When suspended, a job is not
executing and is not charged for walltime.

.IP "resume"
Marks specified job(s) for resumption by a
scheduler when there are sufficient resources.  If you use
.B qsig -s resume 
on a job that was suspended using 
.B qsig -s suspend
, the job is resumed when there are sufficient resources.  Cannot
be used on jobs that were suspended with 
.I admin_suspend 
signal.  

.SH  OPERANDS
The 
.B qsig 
command accepts one or more
.I job ID
operands.  For a job, this has the form:
.RS 4
.I <sequence number>[.<server name>][@<server name>]
.RE

For a job array, 
.I job ID
takes the form:
.RS 4
.I <sequence number>[][.<server name>][@<server name>]
.RE

Note that some shells require that you enclose a job array identifier in
double quotes.

.SH STANDARD ERROR
The 
.B qsig 
command writes a diagnostic messages to standard error for
each error occurrence.

.SH EXIT STATUS
.IP Zero 8
Upon successful processing of all the operands presented to the
.B qsig 
command
.IP "Greater than zero" 8
If the 
.B qsig 
command fails to process any operand

.SH SEE ALSO
qsub(1B), pbs_sigjob(3B),
pbs_resources(7B)
